package com.yt.server.api;

import java.util.concurrent.atomic.AtomicInteger;

/**
 * 统计计数器(原子性)
 */
public class StatisticsCounter {

	private AtomicInteger current = new AtomicInteger();

	private AtomicInteger total = new AtomicInteger();

	private AtomicInteger max = new AtomicInteger();

	/**
	 * 增加
	 */
	public void increment() {
		total.incrementAndGet();
		max.compareAndSet(current.intValue(), current.incrementAndGet());
	}

	/**
	 * 递减
	 */
	public void decrement() {
		current.decrementAndGet();
	}

	/**
	 * 当前量
	 * 
	 * @return
	 */
	public int getCurrent() {
		return current.intValue();
	}

	/**
	 * 总量
	 * 
	 * @return
	 */
	public int getTotal() {
		return total.intValue();
	}

	/**
	 * 最大量
	 * 
	 * @return
	 */
	public int getMax() {
		return max.intValue();
	}
}
